package com.itheima.myAtomInteger;

import java.util.concurrent.atomic.AtomicInteger;

public class Demo2 {
    //    int get():    获取值
    //    int getAndIncrement():    以原子方式将当前值加1，注意，这里返回的是自增前的值。
    //    int incrementAndGet():    以原子方式将当前值加1，注意，这里返回的是自增后的值。
    //    int addAndGet(int data):    以原子方式将参数与对象中的值相加，并返回结果。
    //    int getAndSet(int value):    以原子方式设置为newValue的值，并返回旧值。
    public static void main(String[] args) {
        AtomicInteger ai1 = new AtomicInteger(10);
        System.out.println(ai1.get());
        System.out.println("============================");

        AtomicInteger ai2 = new AtomicInteger(10);
        int andIncrement = ai2.getAndIncrement();
        System.out.println(andIncrement);
        System.out.println(ai2.get());
        System.out.println("============================");

        AtomicInteger ai3 = new AtomicInteger(10);
        int incrementAndGet = ai3.incrementAndGet();
        System.out.println(incrementAndGet);
        System.out.println(ai3.get());
        System.out.println("============================");

        AtomicInteger ai4 = new AtomicInteger(10);
        int addAndGet = ai4.addAndGet(20);
        System.out.println(addAndGet);
        System.out.println(ai4.get());
        System.out.println("============================");

        AtomicInteger ai5 = new AtomicInteger(100);
        int andSet = ai5.getAndSet(20);
        System.out.println(andSet);
        System.out.println(ai5.get());
        System.out.println("============================");
    }
}
